package com.plugin.core.model.entity;

import com.baomidou.mybatisplus.annotation.*;
import com.fasterxml.jackson.annotation.JsonFormat;
import io.swagger.v3.oas.annotations.media.Schema;
import lombok.Data;
import lombok.EqualsAndHashCode;

import java.math.BigDecimal;
import java.time.LocalDate;
import java.time.LocalDateTime;

/**
 * 入住记录实体类
 * 
 * @author mark
 * @date 2025-07-23
 */
@Data
@EqualsAndHashCode(callSuper = false)
@TableName("elder_check_in")
@Schema(name = "ElderCheckIn", description = "入住记录表")
public class ElderCheckIn {

    @Schema(description = "ID")
    @TableId(value = "id", type = IdType.AUTO)
    private Long id;

    @Schema(description = "长者ID")
    @TableField("elder_id")
    private Long elderId;

    @Schema(description = "合同ID")
    @TableField("contact_id")
    private Long contactId;

    @Schema(description = "房间号")
    @TableField("room_number")
    private String roomNumber;

    @Schema(description = "入住日期")
    @TableField("check_in_date")
    @JsonFormat(pattern = "yyyy-MM-dd")
    private LocalDateTime checkInDate;

    @Schema(description = "入住评估")
    @TableField("assessment_content")
    private String assessmentContent;

    @Schema(description = "随身物品")
    @TableField("belongings")
    private String belongings;

    @Schema(description = "备注")
    @TableField("remark")
    private String remark;

    @Schema(description = "入住状态:1待审核，2审核通过未入住,3,已审核,未缴费;4已缴费入住")
    @TableField("status")
    private Integer status;

    @Schema(description = "入住金额")
    @TableField("check_in_amount")
    private BigDecimal checkInAmount;
    
    @Schema(description = "是否离开:0未离开,1已离开")
    @TableField("is_leave")
    private Integer isLeave;

    @Schema(description = "入住金额")
    @TableField("deposit_amount")
    private BigDecimal deposit_amount;
}
